#ifndef _HCC_ERROR_CODE_DRV_IDP_ENUM_I2C_H_
#define _HCC_ERROR_CODE_DRV_IDP_ENUM_I2C_H_

#include "ofc_types.h"
#include "hcc_error_code.h"
#include "hcc_error_code_drv.h"

#ifdef __cplusplus
extern "C" {
#endif

// 不含行号的错误码生成
#define HCC_MAKE_DRV_IDP_ENUM_I2C_ERROR(error_code) (int)HCC_MAKE_DRIVER_ERROR(kHccDrvIdpEnumI2c, error_code, HCC_ERROR_LEVEL_ERROR)
// 含行号的错误码生成
#define HCC_MAKE_DRV_IDP_ENUM_I2C_ERROR_LINE(error_code) (int)HCC_ERROR(HCC_MAKE_DRIVER_ERROR(kHccDrvIdpEnumI2c, error_code, HCC_ERROR_LEVEL_ERROR))


/**
 * IO模拟I2C驱动:IO模拟I2C驱动
 */
enum THccDrvIdpEnumI2cTag
{
	kHccDrvIdpEnumI2cSuccess	=	HCC_ERROR_SUCCESS,			///< 成功,没有错误
	kHccDrvIdpEnumI2cCallBack	=	HCC_MAKE_DRV_IDP_ENUM_I2C_ERROR(0),			///<回调函数未设置
	kHccDrvIdpEnumI2cBus	=	HCC_MAKE_DRV_IDP_ENUM_I2C_ERROR(1),			///<总线错误,SDA或者CLK至少有一只引脚电平为0,并无法修复
	kHccDrvIdpEnumI2cParam	=	HCC_MAKE_DRV_IDP_ENUM_I2C_ERROR(2),			///<参数错误
	kHccDrvIdpEnumI2cNak	=	HCC_MAKE_DRV_IDP_ENUM_I2C_ERROR(3),			///<从机没有Ack的错误
};
typedef enum THccDrvIdpEnumI2cTag THccDrvIdpEnumI2c;


typedef Int32 THccDrvIdpEnumI2cLine;
#define kHccDrvIdpEnumI2cSuccessLine	HCC_ERROR_SUCCESS	///< 成功,没有错误
#define kHccDrvIdpEnumI2cCallBackLine	HCC_MAKE_DRV_IDP_ENUM_I2C_ERROR_LINE(0)	///<回调函数未设置
#define kHccDrvIdpEnumI2cBusLine	HCC_MAKE_DRV_IDP_ENUM_I2C_ERROR_LINE(1)	///<总线错误,SDA或者CLK至少有一只引脚电平为0,并无法修复
#define kHccDrvIdpEnumI2cParamLine	HCC_MAKE_DRV_IDP_ENUM_I2C_ERROR_LINE(2)	///<参数错误
#define kHccDrvIdpEnumI2cNakLine	HCC_MAKE_DRV_IDP_ENUM_I2C_ERROR_LINE(3)	///<从机没有Ack的错误

//旧版本适配补丁
typedef THccDrvIdpEnumI2c TIdpEnumIicErrorCode; 

#define kIdpEnumIicErrorCodeSuccess kHccDrvIdpEnumI2cSuccess
#define kIdpEnumIicErrorCodeCallBack kHccDrvIdpEnumI2cCallBack
#define kIdpEnumIicErrorCodeBus kHccDrvIdpEnumI2cBus
#define kIdpEnumIicErrorCodeParam kHccDrvIdpEnumI2cParam
#define kIdpEnumIicErrorCodeNak kHccDrvIdpEnumI2cNak

#ifdef __cplusplus
}  // extern "C"
#endif

#endif // _HCC_ERROR_CODE_DRV_IDP_ENUM_I2C_H_
/**
 * @
 */
